package lb.io.apis.meta.v1.codes;

public enum Codez {
    // 请求成功
    Ok(10),

    // 正在执行，Stream -> Stream 类型的请求会返回这个类型
    Executing(11),

    // 未知类型，出现 600 - 699 中未定义的错误时统一归类到此类型
    ErrLetUnknown(600),

    // lblet 连接异常，造成原因可能为: 网络异常、lblet 宕机
    ErrLetConnect(601),

    // lblet 在操作权限不足
    ErrLetPermission(602),

    // iscsi 客户端错误
    ErrISCSI(603),

    // nfs 客户端错误
    ErrNFS(604),

    // fc 连接错误
    ErrFC(605),

    // lblet 资源不存在
    ErrLetNotExists(606),

    // lblet 已存在
    ErrLetAlreadyExists(607),

    // 参数错误
    ErrBadParameters(608),

    // ErrMountUnknownPoint 磁盘挂载后，本地未发现标志文件
    ErrMountUnknown(610),

    // ErrPointNotEmpty 挂载目录不为空
    ErrPointNotEmpty(611),

    // ErrPortIsOff 远程端口连接失败
    // 可能是网络问题，或者被服务端防火墙拦截
    ErrPortIsOff(612),

    // ErrCreateFileDisk 创建磁盘错误
    ErrCreateFileDisk(613),

    // ErrConnectFileDisk 挂载磁盘错误
    ErrConnectFileDisk(614),

    // ErrCreateRawDisk 创建裸设备错误
    ErrCreateRawDisk(615),

    // ErrCreateDiskGroup 创建 diskGroup 错误
    ErrCreateDiskGroup(616),

    // ErrConnectDiskGroup 挂载 diskgroup 错误
    ErrConnectDiskGroup(617),

    // ErrSetDiskGroup 修改 diskgroup 错误
    ErrSetDiskGroup(618),

    // lblet 连接 oracle 失败，可能原因是: lblet 没有权限，oracle shutdown
    ErrOracleConnect(620),

    // Oracle 归档日志未开启
    ErrOracleNoArchive(621),

    _end(9999999);

    private int code;

    Codez(int code) {
        this.code = code;
    }

    public int getCode() {
        return code;
    }

    public void setCode(int code) {
        this.code = code;
    }

    @Override
    public String toString() {
        return this.name();
    }
}
